package com.sdgakj.utils;

import java.util.List;

/**
 * 一些有关分页的方法类
 * 
 * @author lihegang
 *
 */
public class PageListUtils {

	/**
	 * 获取总页数
	 * 
	 * @param totalcount
	 *            记录总数
	 * @param pagesize
	 *            每页记录数
	 * @return
	 */
	public static int getPages(int totalcount, int pagesize) {
		int pagecount = 0;

		int m = totalcount % pagesize;

		if (m > 0) {
			pagecount = totalcount / pagesize + 1;
		} else {
			pagecount = totalcount / pagesize;
		}
		return pagecount;
	}

	/**
	 * 获取子列表
	 * @param pagecount   总页数
	 * @param totalcount  总记录数
	 * @param page        当前的页数
	 * @param pagesize    页数大小
	 * @param list        传递的总list
	 * @return
	 */
	public static List getSubList(int pagecount,int totalcount,int page,int pagesize, List list){
		int m = totalcount % pagesize;
		List subList =null;
		if(m==0){//如果m=0说明正好是整页数，起始下标从0开始的
			subList =list.subList((page-1)*pagesize, pagesize*page);
		}else{
			//当是最后一页的时候
			if(pagecount ==page){
	    		subList= list.subList((page-1)*pagesize,totalcount); 
			}else{
			//不是最后一页的时候
				subList= list.subList((page-1)*pagesize,pagesize*(page));
			}
		}
		return subList;
	}
}
